<?php
/**
 * 腾讯云直播服务调用示例
 */

// 引入腾讯云直播服务类
require_once 'TencentLiveService.php';

// 配置信息
$config = array(
    'appId'      => 'AppID',  // 替换为您的腾讯云直播AppID https://console.cloud.tencent.com/developer
    'secretId'   => 'SecretId',  // 替换为您的腾讯云API密钥SecretId https://console.cloud.tencent.com/cam/capi
    'secretKey'  => 'SecretKey',      // 替换为您的腾讯云API密钥SecretKey https://console.cloud.tencent.com/cam/capi
    'pushDomain' => '推流域名',  // 替换为您的推流域名https://console.cloud.tencent.com/live/domainmanage
    'playDomain' => '播放域名',  // 替换为您的播放域名https://console.cloud.tencent.com/live/domainmanage
    'pushKey'    => '推流鉴权key',     // 替换为您的推流鉴权key
    'playKey'    => '播放鉴权key',     // 替换为您的播放鉴权key
    'pushExpire' => 86400,  // 推流地址有效期(秒)
    'playExpire' => 86400,  // 播放地址有效期(秒)
);

// 创建腾讯云直播服务实例
$liveService = new TencentLiveService($config);

// 生成一个随机的流名称用于演示
$streamName = 'test_stream_' . rand(10000, 99999);

// 获取当前时间戳
$currentTime = time();

// 演示各种功能
$demoResults = array();

// 1. 生成推流地址
$demoResults['推流地址(RTMP)'] = $liveService->getPushUrl($streamName, 'rtmp');
$demoResults['推流地址(WebRTC)'] = $liveService->getPushUrl($streamName, 'webrtc');

// 2. 生成不同格式的播放地址
$demoResults['播放地址(RTMP)'] = $liveService->getPlayUrl($streamName, 'rtmp');
$demoResults['播放地址(FLV)'] = $liveService->getPlayUrl($streamName, 'flv');
$demoResults['播放地址(HLS)'] = $liveService->getPlayUrl($streamName, 'hls');
$demoResults['播放地址(UDP)'] = $liveService->getPlayUrl($streamName, 'udp');
$demoResults['播放地址(WebRTC)'] = $liveService->getPlayUrl($streamName, 'webrtc');

// 3. 创建录制任务（录制1小时）
$startTime = $currentTime;
$endTime = $currentTime + 3600;
$fileName = 'record_' . $streamName;
$demoResults['录制任务'] = $liveService->createRecordTask($streamName, $fileName, $startTime, $endTime);

// 4. 查询直播流状态
$demoResults['直播流状态'] = $liveService->getStreamStatus($streamName);

// 5. 创建截图任务
//$demoResults['截图任务'] = $liveService->createScreenshotTask($streamName);

// 6. 创建鉴黄任务
//$demoResults['鉴黄任务'] = $liveService->createPornDetectTask($streamName);

// 7. 获取水印列表
//$demoResults['水印列表'] = $liveService->getWatermarkList();

// 8. 获取回调配置
//$demoResults['回调配置'] = $liveService->getCallbackConfig();

// 9. 设置回调地址
$callbackUrl = 'https://callback.example.com/live_callback';
//$demoResults['设置回调'] = $liveService->setCallbackUrl($callbackUrl);

// 10. 获取直播流列表
$demoResults['直播流列表'] = $liveService->getLiveStreamList(1, 10);

// 11. 获取推流历史（最近1小时）
// 将时间戳转换为腾讯云API要求的格式：UTC时间的ISO 8601标准格式（如：2018-10-21T10:01:00Z）
$historyStartTime = gmdate("Y-m-d\TH:i:s\Z", $currentTime - 86400); // 查询过去24小时的记录
$historyEndTime = gmdate("Y-m-d\TH:i:s\Z", $currentTime - 60); // 结束时间设为当前时间前1分钟，避免时间同步问题
$demoResults['推流历史'] = $liveService->getPushHistory($streamName, $historyStartTime, $historyEndTime);

// 输出HTML页面
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>腾讯云直播服务演示</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
            line-height: 1.6;
        }
        h1 {
            color: #333;
            border-bottom: 1px solid #ddd;
            padding-bottom: 10px;
        }
        h2 {
            color: #0078d7;
            margin-top: 20px;
        }
        .section {
            margin-bottom: 30px;
            background: #f9f9f9;
            padding: 15px;
            border-radius: 5px;
        }
        .url {
            word-break: break-all;
            background: #eee;
            padding: 10px;
            border-radius: 3px;
            font-family: monospace;
        }
        .result {
            margin-top: 10px;
            background: #f0f0f0;
            padding: 10px;
            border-radius: 3px;
            overflow: auto;
            max-height: 200px;
        }
        pre {
            margin: 0;
            white-space: pre-wrap;
        }
        .note {
            color: #666;
            font-style: italic;
            margin-top: 5px;
        }
        .player-container {
            margin-top: 20px;
        }
        .btn {
            background-color: #0078d7;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 16px;
            transition: background-color 0.3s;
        }
        .btn:hover {
            background-color: #005a9e;
        }
    </style>
</head>
<body>
    <h1>腾讯云直播服务演示</h1>
    
    <div class="section">
        <h2>基本信息</h2>
        <p><strong>流名称:</strong> <?php echo $streamName; ?></p>
        <p><strong>当前时间:</strong> <?php echo date('Y-m-d H:i:s', $currentTime); ?></p>
    </div>
    
    <div class="section">
        <h2>推流地址</h2>
        
        <h3>RTMP推流</h3>
        <div class="url"><?php echo $demoResults['推流地址(RTMP)']; ?></div>
        <p class="note">可以使用OBS等推流软件，将此地址设为推流地址进行测试</p>
        
        <h3>WebRTC推流</h3>
        <div class="url"><?php echo $demoResults['推流地址(WebRTC)']; ?></div>
        <p class="note">可以使用腾讯云WebRTC推流SDK或支持WebRTC的浏览器进行推流</p>
    </div>
    
    <div class="section">
        <h2>播放地址</h2>
        
        <h3>RTMP格式</h3>
        <div class="url"><?php echo $demoResults['播放地址(RTMP)']; ?> </div>
        
        <h3>FLV格式</h3>
        <div class="url"><?php echo $demoResults['播放地址(FLV)']; ?></div>
        
        <h3>HLS格式</h3>
        <div class="url"><?php echo $demoResults['播放地址(HLS)']; ?></div>
        
        <h3>UDP格式</h3>
        <div class="url"><?php echo $demoResults['播放地址(UDP)']; ?></div>
        
        <h3>WebRTC格式
        <a href="player.html?url=<?php echo urlencode($demoResults['播放地址(WebRTC)']); ?>" id="play-btn" class="btn" target="_blank">测试播放</a></h3>
        <div class="url"><?php echo $demoResults['播放地址(WebRTC)']; ?></div>
        <p class="note">可以使用VLC等播放器，或在网页中嵌入播放器进行测试</p>
    </div>
    
    <div class="section">
        <h2>API调用结果</h2>
        
        <h3>查询直播流状态</h3>
        <div class="result">
            <pre><?php echo json_encode($demoResults['直播流状态'], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); ?></pre>
        </div>
        
        <h3>直播流列表</h3>
        <div class="result">
            <pre><?php echo json_encode($demoResults['直播流列表'], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); ?></pre>
        </div>
        
        <h3>推流历史</h3>
        <div class="result">
            <pre><?php echo json_encode($demoResults['推流历史'], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); ?></pre>
        </div>
    </div>
    
    
    
    <div class="section">
        <h2>使用说明</h2>
        <p>1. 本演示页面展示了腾讯云直播服务的基本功能</p>
        <p>2. 要进行实际测试，请先使用OBS等工具向推流地址推流</p>
        <p>3. 推流成功后，可以通过播放地址观看直播</p>
        <p>4. API调用结果部分展示了各种API的返回结果</p>
        <p>5. 在实际使用中，请替换配置中的参数为您自己的参数</p>
    </div>
</body>
</html>